package IO;

import java.io.File;
import java.nio.file.Files;
import java.util.Scanner;

/*
* 查找和删除文件
* */

public class Demo18 {
    public static void main(String[] args) {
        System.out.println("请输入要搜索的路径:");
        Scanner scan = new Scanner(System.in);
        String rootPath = scan.next();
        File rootFile = new File(rootPath);
        if(!rootFile.isDirectory()){
            System.out.println("输入的路径不存在!");
            return ;
        }
        System.out.println("请输入要删除文件的关键字:");
        String key = scan.next();

        //进行递归查找
        scan(rootFile,key);
    }

    private static void scan(File currentFile,String key){
        //不是目录
        if(!currentFile.isDirectory()){
            return ;
        }

        //数组中没有内容
        File[] files = currentFile.listFiles();
        if(files == null || files.length == 0){
            return ;
        }

        for (File f : files) {
            if(f.isFile()){
                //针对普通文件进行处理
                //判定文件名是否符合要求
                doDelete(f,key);
            }else{
                //针对目录进行处理
                //继续递归
                scan(f,key);
            }
        }
    }

    private static void doDelete(File f, String key) {
        if(!f.getName().contains(key)){
            //文件名中不包含指定的关键字
            return ;
        }
        //提示用户是否确认要删除
        Scanner scan = new Scanner(System.in);
        System.out.println(f.getAbsolutePath() + "是否确认要删除 Y / N ?");
        String choice = scan.next();
        if(choice.equals("Y") || choice.equals("y")){
            f.delete();
        }


    }

}
